from django.template import Library
from datetime import datetime

register = Library()


@register.simple_tag(name='current', takes_context=True)
def c_time(context, cu_time):
    # 获取数据库时间
    # 更改时间格式
    # return datetime.now().strftime(context['format_str'])
    return cu_time.strftime(context['format_str'])


# '%Y年%m月%d日 %H:%M:%S'

@register.inclusion_tag('students/pagination.html', takes_context=True)
def pagination_html(context):
    # 总页数
    total_page = context['total_page']
    per_page = context['per_page']
    # 第几页
    page = int(context['page'])
    num = 1  # 当前页左右各显示几页
    page_list = []  # 存放页码列表

    # 页码范围的确定
    # 左边 + 当前页
    if page - num <= 0:  # 左边不够显示
        for i in range(page):
            page_list.append(i + 1)
    else:  # 左边够显示
        for i in range(page - num, page + 1):
            page_list.append(i)
    # 右边
    if page + num > total_page:  # 右边不够显示
        for i in range(page + 1, total_page + 1):
            page_list.append(i)
    else: # 右边够显示
        for i in range(page +1, page + num + 1):
            page_list.append(i)

    return {
        'page_list': page_list,
        'page': page,
        'per_page': per_page,
        'total_page': total_page,
    }



'''
    total_page = 5
    [1,2,3,4,5]
    
    # 当前页左右各显示几页
    num = 1
    上一页       1    2  下一页
    上一页  1    2    3  下一页
    上一页  2    3    4  下一页
    上一页  3    4    5  下一页
    上一页  4    5       下一页
   
    num=2
    上一页            1   2   3  下一页
    上一页        1   2   3   4  下一页
    上一页   1    2   3   4   5  下一页
    上一页   2    3   4   5      下一页
    上一页   3    4   5         下一页
'''
'''
{{ 模板变量|过滤器[:参数] }}

{% tag %}[{% endtag %}]
{% for ... %}{% endfor %}
{% if ... %}{% endif %}
{% include ... %}
{% extends ... %}
{% block ... %}{% endblock %}
{% load ... %}
{% url '' %}

register.filter
register.simple_tag
register.inclusion_tag
'''

@register.inclusion_tag('students/options.html', takes_context=True)
def grade_options(context, student):
    return {'grades': context['grades'],
            'student': student,
            }


@register.simple_tag
def add_class(field, class_str):
    return field.as_widget(attrs={'class': class_str,})